tp6连接oracle数据库save和insert语句执行成功但是报ORA 您所在的位置:网站首页 ora-00936: 缺失表达式一般是什么原因 tp6连接oracle数据库save和insert语句执行成功但是报ORA

tp6连接oracle数据库save和insert语句执行成功但是报ORA

2023-10-25 13:37| 来源: 网络整理| 查看: 265

SQLSTATE[HY000]: General error: 936 OCIStmtExecute: ORA-00936: 缺失表达式 (ext\pdo_oci\oci_statement.c:157)

/** * 获取最近插入的ID * @access public * @param BaseQuery $query 查询对象 * @param string $sequence 自增序列名 * @return mixed */ public function getLastInsID(BaseQuery $query, string $sequence = null) { $pdo = $this->linkID->query("select {$sequence}.currval as id from dual"); $result = $pdo->fetchColumn(); return $result; } protected function supportSavepoint(): bool { return true; }

错误现象: 使用thinkphp6连接oracle数据库时 使用save方法永远跳转到update 使用insert方法执行语句成功,但是总是报ORA-00936错误

原因分析: tp6主要是基于mysql 进行设计,mysql强制要求每个表都有主键,然而,oracle对此没有硬性要求。 所以tp6在insert或者update访问数据表时候都会先取得主键,然后再进行访问。 由于oracle大部分表格都没有主键,所以抛出错误。

解决方法:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有